
#include <stdio.h>
#include <string.h>
#include <config.h>
static ItemCfg g_tItemCfgs[ITEMCFG_MAX_NUM];//全部的按钮配置项保存在这个数组里
static int g_iItemCfgCount = 0;//总共有多少项

//解析配置文件
int ParseConfigFile(void)
{
	FILE *fp;
	char buf[100];
	char *p = buf;
	/*1. open config file*/
	fp = fopen(CFG_FILE,"r");
	if(!fp)
	{
		printf("can not open cfg file %s\n",CFG_FILE);
		return -1;
	}
	while(fgets(buf,100,fp))//读入一行存在buf里
	{
		/*2.1 read each line*/
		buf[99]='\0';

		/*2.2 吃掉开头的空格或者TAB键*/
		p = buf;
		while (*p == ' ' || *p =='\t')//如果p为空格或者为tab键
			p++;
		/*2.3 忽略注释*/
		if(*p=='#')
			continue;
		/*2.4 处理*/
		g_tItemCfgs[g_iItemCfgCount].command[0]='\0';//command可能会没有数据所以要赋予初始值
		g_tItemCfgs[g_iItemCfgCount].index=g_iItemCfgCount;
		//sscanf将p指向的内容中的数据存入g_tItemCfgs[g_iItemCfgCount]
		sscanf(p,"%s %d %s",g_tItemCfgs[g_iItemCfgCount].name,&g_tItemCfgs[g_iItemCfgCount].bCanBeTouched,\
		g_tItemCfgs[g_iItemCfgCount].command);
		g_iItemCfgCount++;
	}	
	return 0;
}

int GetItemCfgCount(void)
{

	return g_iItemCfgCount;
}
PItemCfg GetItemCfgByIndex(int index)
{
	if(index<g_iItemCfgCount)
		return &g_tItemCfgs[index];
	else 
		return NULL;
}
PItemCfg GetItemCfgByName(char *name)
{
	int i;
	for(i=0;i<g_iItemCfgCount;i++)
	{
		if(strcmp(name,g_tItemCfgs[i].name) ==0)
			return &g_tItemCfgs[i];
	}
	return NULL;
}

